package exception;

/**
 * throw关键字,
 * throw用来主动对外抛出异常,通常下面两种场景我们会对外抛出异常:
 * 1:程序遇到一个满足语法但是不满足业务逻辑的场景式,可以对外抛出异常
 * 2:程序执行出现了异常,但是该异常不应当在当前代码片段被解决时可以对外抛出异常
 */
public class ThrowDemo {
    public static void main(String[] args) {
        Person p = new Person();
        /*
            典型的满足语法(可以正常运行)不满足业务场景


         */
        /*
            当我们调用一个含有throws声明异常抛出的方法时,编译器要求我们必须处理这个
            异常了否则编译不通过
            处理异常的手段有两种:
            1:try-catch捕获并处理
            2:在当前方法上继续使用throws声明该异常的抛出给上级调用者
            具体使用哪种取决于异常处理的责任问题

         */

        try {
            p.setAge(122000);
        } catch (IllegalAgeException e) {
            e.printStackTrace();
        }

        System.out.println("此人年龄:"+ p.getAge());
    }
}
